﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Sistema_Totem.Clases;
using System.Web.UI.WebControls;
using System.Web.UI;
using Sistema_Totem.Clases.Fabricas;
using AjaxControlToolkit;

namespace Sistema_Totem.Logica.Comandos.ComandoPlantilla
{
    /// <summary>
    /// se le asigna el nombre, tipo, estado y validaciones de cada elemento
    /// </summary>
    public class ComandoAgregarPlantillaPasoTres : Comando<Entidad>
    {
        private Entidad _plantilla;
        private Accordion _accordionCtrl;

        public ComandoAgregarPlantillaPasoTres(Accordion accordionCtrl, Entidad plantilla) 
        {
            _plantilla = plantilla;
            _accordionCtrl = accordionCtrl;
        }

        public override Entidad Ejecutar()
        {
            for (int i = 0; i < _accordionCtrl.Panes.Count; i++)
            {
                int auxi = 0;
                //int cantchecks = 0;
                for (int j = 0; j < _accordionCtrl.Panes[i].ContentContainer.Controls.Count; j++)
                {
                    Object ctr = new Control();
                    ctr = _accordionCtrl.Panes[i].ContentContainer.Controls[j];
                    if (ctr is TextBox)
                    {
                        TextBox texto = ctr as TextBox;
                        String[] tipotextbox = texto.ID.ToString().Split('/');
                        if (tipotextbox[0].Equals("TextBoxN"))
                        {
                            (_plantilla as Plantilla).ListaSeccion[i].ListaControl[auxi].Nombre = texto.Text.ToString();
                        }
                        if (tipotextbox[0].Equals("TextBoxC"))
                        {
                            (_plantilla as Plantilla).ListaSeccion[i].ListaControl[auxi].Contenido = texto.Text.ToString();
                            auxi++;
                        }
                    }
                    if (ctr is DropDownList)
                    {
                        DropDownList dl = ctr as DropDownList;
                        String[] tipodropdown = dl.ID.ToString().Split('/');
                        if (tipodropdown[0].Equals("DropdownE")) 
                        {
                            (_plantilla as Plantilla).ListaSeccion[i].ListaControl[auxi].Estado = dl.SelectedValue.ToString();
                        }
                        if (tipodropdown[0].Equals("DropdownT")) 
                        {
                            (_plantilla as Plantilla).ListaSeccion[i].ListaControl[auxi].Tipo = dl.SelectedValue.ToString();
                        }
                        (_plantilla as Plantilla).ListaSeccion[i].ListaControl[auxi].ListaComportamiento = new List<Comportamiento>();
                    }                    
                    
                    if (ctr is CheckBox) 
                    {
                        CheckBox check = ctr as CheckBox;
                        if (check.Checked)
                        {
                            Comportamiento _comportamiento = new Comportamiento();
                            _comportamiento.Nombre = check.Text.ToString();
                            (_plantilla as Plantilla).ListaSeccion[i].ListaControl[auxi].ListaComportamiento.Add(_comportamiento);
                        }
                        //cantchecks++;
                        //if (cantchecks==3) 
                        //{
                        //    cantchecks = 0;
                        //    auxi++;
                        //}
                    }
                }
            }
            return _plantilla;
        }
        
    }
}